SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TMDOCU_PROV_Q22]
/*-------------------------------------------------------*/
/*---Empresa              : OFISIS S.A.                --*/
/*---Sistema              : Tesoreria                  --*/
/*---M÷dulo               : Empresa                    --*/
/*---Programa             : Pagos Proveedores          --*/
/*---Script               :                            --*/
/*---Nombre SP            : SP_TMDOCU_PROV_Q22         --*/
/*---Desarrollado por     : Reynaldo Menacho Luyo      --*/
/*---Fecha Creaci÷n       : 03/04/2002                 --*/
/*---Base Datos           : Microsoft Sql Server       --*/
/*---Versi÷n              : 7.0                        --*/
/*---Invoca a SP          :                            --*/
/*-------------------------------------------------------*/
/*-------------------------------------------------------*/
/*---Modificado 1 por     :			       --*/
/*---Fecha Modificaci÷n   :			       --*/ 
/*---Detalle Modificaci÷n :			       --*/
/*---			   			       --*/
/*-------------------------------------------------------*/
/*-------------------------------------------------------*/
/*---Drop Proc SP_TMDOCU_PROV_Q22                      --*/
/*---Grant Execute on SP_TMDOCU_PROV_Q22 to public         --*/ 
/*---SP_TMDOCU_PROV_Q22 '93', NULL, "'FAC',  'BOL',  'LET',  'RHP'", NULL, NULL, 
	'2002/07/01', '2002/08/30', 'A', '1', 'P', 'DOL', 'N', 0   --*/
/*-------------------------------------------------------*/
@ISCO_EMPR      TD_VC_002,
@ISCO_PROV      TD_VC_020,
@ISDE_CODI_DOCU Varchar(500),
@ISCO_MONE      TD_VC_003,
@ISCO_TIPO_OPER TD_VC_003,
@IDFE_INIC	TD_DT_001,
@IDFE_FINA	TD_DT_001,
@ISST_TIPO_PAGO TD_VC_001,
@ISTI_ORDE	TD_VC_001,
@ISTI_AUXI_PROV	TD_VC_001,
@ISCO_MONE_DEST	TD_VC_003,
@ISST_USUA      TD_VC_001,
@INFA_USUA      TD_NU_009_004
	As
Create Table #TWPAGO_PROV
( CO_EMPR	CHAR(02) NULL,
CO_MONE 	VARCHAR(03) NULL,
CO_PROV	VARCHAR(20) NULL,
CO_TIPO_DOCU	VARCHAR(03) NULL,
NU_DOCU_PROV	VARCHAR(20) NULL,
CO_TIPO_OPER	VARCHAR(03) NULL,
IM_TOTA		NUMERIC(16,4),
IM_PAGA		NUMERIC(16,4),
CO_CABA	VARCHAR(10) NULL,
NU_CNTA_BANC	VARCHAR(20) NULL,
IM_CONV_DOCU	NUMERIC(16,4),
CO_MONE_OPER	VARCHAR(03) NULL,
FA_TIPO_CAMB	NUMERIC(16,4),
TI_DOCU_CABA	VARCHAR(03) NULL,
NU_DOCU_CABA	VARCHAR(20) NULL,
FE_EMIS		DATETIME,
FE_VENC	DATETIME,
FE_OPER	DATETIME,
NU_COMP_CABA	VARCHAR(20) NULL,
IM_MOVI		NUMERIC(16,4) NULL,
IM_SALD_CONV	NUMERIC(16,4) NULL,
IM_CONV	NUMERIC(16,4) NULL)

DECLARE
@CSCO_EMPR      TD_VC_002,
@CSCO_CABA      TD_VC_020,
@CSNU_CNTA_BANC TD_VC_020,
@CSCO_MONE      TD_VC_003,
@CSCO_PROV      TD_VC_020, 
@CSCO_TIPO_DOCU TD_VC_003,
@CSNU_DOCU_PROV TD_VC_020,
@CSNU_COMP_CABA TD_VC_020,
@CNIM_CONV_DOCU TD_NU_016_004,
@CSCO_MONE_OPER TD_VC_003,
@CNFA_TIPO_CAMB TD_NU_009_004,
@CDFE_OPER      TD_DT_001,
@CNIM_MOVI      TD_NU_016_004,
@VNFE_0001      TD_IN_001, 
@VNIM_SALD_CONV TD_NU_016_004,
@VNIM_CONV      TD_NU_016_004,
@VSTI_CAMB      TD_VC_002,
@VSTI_ORIG      TD_VC_002,
@VSDE_WHER      TD_VC_200,
@VSFE_INIC	TD_VC_020,
@VSFE_FINA	TD_VC_020,
--@VSDE_WHER_0001 VARCHAR(1000),
@OSTI_DOCU_LETR TD_VC_003


  SELECT @VSDE_WHER = ' '

  IF @ISCO_EMPR IS NOT NULL
	SELECT @VSDE_WHER = ' And T1.CO_EMPR = "' + @ISCO_EMPR + '" '
  
  IF @ISCO_PROV IS NOT NULL
	SELECT @VSDE_WHER = @VSDE_WHER + ' And T1.CO_PROV = "' + @ISCO_PROV + '" '

  IF @ISCO_MONE IS NOT NULL
	SELECT @VSDE_WHER = @VSDE_WHER + ' And T1.CO_MONE = "' + @ISCO_MONE + '" '

  IF @ISCO_TIPO_OPER IS NOT NULL
	SELECT @VSDE_WHER = @VSDE_WHER + ' And T1.CO_TIPO_OPER = "' + @ISCO_PROV + '" '

  IF @ISST_TIPO_PAGO = 'T'
	SELECT @VSDE_WHER = @VSDE_WHER + ' AND ROUND(T1.IM_TOTA, 2) = ROUND(T2.IM_DETA_NEGA,2) '

  IF @ISST_TIPO_PAGO = 'P'
	SELECT @VSDE_WHER = @VSDE_WHER + ' AND ROUND(T1.IM_TOTA, 2)  > ROUND(T2.IM_DETA_NEGA,2) '

  SELECT @VSFE_INIC = CONVERT (VARCHAR(10), @IDFE_INIC, 103)
  SELECT @VSFE_FINA = CONVERT (VARCHAR(10), @IDFE_FINA, 103)

  Exec SP_TTDOCU_CNTB_Q02 6, @OSTI_DOCU_LETR  OUTPUT

--SELECT @VSDE_WHER_0001
--And 	PATINDEX ( "%" + T1.CO_TIPO_DOCU + "%", ' + @ISDE_CODI_DOCU + ') > 0


  EXECUTE('
  Insert Into #TWPAGO_PROV (CO_EMPR, CO_MONE, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,
  CO_TIPO_OPER, IM_TOTA, IM_PAGA, CO_CABA, NU_CNTA_BANC, IM_CONV_DOCU,
  CO_MONE_OPER, FA_TIPO_CAMB, TI_DOCU_CABA, NU_DOCU_CABA, FE_EMIS, FE_VENC, FE_OPER,
  NU_COMP_CABA, IM_MOVI)
  Select  T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,
	T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T2.CO_BANC, T2.NU_CNTA_BANC,
	T2.IM_SALD_CONV, T4.CO_MONE, T7.FA_TIPO_CAMB, Isnull(T7.CO_TIPO_DOCU, "CHE"), Isnull(T7.NU_CHEQ, T7.NU_DOCU_BANC), 
	T1.FE_EMIS, T1.FE_VENC, T7.FE_OPER, T7.NU_COMP_BANC, T2.IM_DETA_NEGA
  From 	TMDOCU_PROV T1 , TDMOVI_BANC T2, TMCNTA_BANC T4, TCMOVI_BANC T7
  Where 1 = 1 ' +  @VSDE_WHER + '
  And 	T1.CO_TIPO_DOCU IN ( ' + @ISDE_CODI_DOCU + ' )
  And	T1.IM_PAGA > 0
  And   T7.FE_OPER >= Convert(Datetime, "' + @VSFE_INIC + '", 103)
  And	T7.FE_OPER <= Convert(Datetime, "' + @VSFE_FINA + '", 103)
  And   T7.TI_SITU != "ANU"
  And   T1.CO_ESTA_DOCU != "ANU" 
  And	T1.CO_EMPR = T2.CO_EMPR
  And	T2.TI_ENTI = "' + @ISTI_AUXI_PROV + '"
  And	T1.CO_PROV = T2.CO_ENTI
  And	T1.CO_TIPO_DOCU = T2.TI_DOCU_ENTI
  And	T1.NU_DOCU_PROV = T2.NU_DOCU_ENTI
  And	T4.CO_EMPR 	= T2.CO_EMPR
  And	T4.CO_BANC 	= T2.CO_BANC
  And	T4.NU_CNTA_BANC = T2.NU_CNTA_BANC
  And	T2.CO_EMPR 	= T7.CO_EMPR
  And	T2.CO_UNID_CONC	= T7.CO_UNID_CONC
  And	T2.CO_BANC 	= T7.CO_BANC
  And	T2.NU_CNTA_BANC = T7.NU_CNTA_BANC
  And	T2.AA_BNCO 	= T7.AA_BNCO
  And	T2.MM_BNCO 	= T7.MM_BNCO
  And	T2.TI_MOVI_BANC = T7.TI_MOVI_BANC
  And	T2.NU_COMP_BANC = T7.NU_COMP_BANC
  Union All
  Select  T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,
 	T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T2.CO_CAJA, T2.NU_COMP_CAJA,
	T2.IM_SALD_CONV, T3.CO_MONE, T6.FA_TIPO_CAMB, CONVERT(VARCHAR(3),""), CONVERT(VARCHAR(15),""),  
	T1.FE_EMIS, T1.FE_VENC, T6.FE_OPER, T2.NU_COMP_CAJA, T2.IM_DETA_NEGA
  From 	TMDOCU_PROV T1, TDMOVI_CAJA T2, TMCAJA T3, TCMOVI_CAJA T6
  Where 1 = 1 ' +  @VSDE_WHER + '
  And 	T1.CO_TIPO_DOCU IN ( ' + @ISDE_CODI_DOCU + ' )
  And 	T1.IM_PAGA > 0
  And   T6.FE_OPER >= Convert(Datetime, "' + @VSFE_INIC + '", 103)
  And	T6.FE_OPER <= Convert(Datetime, "' + @VSFE_FINA + '", 103)
  And   T6.TI_SITU != "ANU"
  And   T1.CO_ESTA_DOCU != "ANU" 
  And	T2.CO_EMPR = T1.CO_EMPR
  And	T2.TI_ENTI = "' + @ISTI_AUXI_PROV + '"
  And	T1.CO_PROV = T2.CO_ENTI
  And	T1.CO_TIPO_DOCU  = T2.TI_DOCU_ENTI
  And	T1.NU_DOCU_PROV = T2.NU_DOCU_ENTI
  And 	T2.CO_EMPR = T3.CO_EMPR
  And 	T2.CO_CAJA = T3.CO_CAJA
  And 	T2.CO_EMPR = T6.CO_EMPR
  And 	T2.CO_CAJA = T6.CO_CAJA
  And 	T2.AA_CAJA = T6.AA_CAJA
  And 	T2.MM_CAJA = T6.MM_CAJA
  And 	T2.TI_MOVI = T6.TI_MOVI
  And 	T2.NU_COMP_CAJA = T6.NU_COMP_CAJA
  Union All
  Select  T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, "' + @OSTI_DOCU_LETR + '", T1.NU_LETR_PROV ,
	T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T2.CO_BANC, T2.NU_CNTA_BANC,
      	T2.IM_SALD_CONV, T4.CO_MONE, T7.FA_TIPO_CAMB, Isnull(T7.CO_TIPO_DOCU, "CHE"), Isnull(T7.NU_CHEQ, T7.NU_DOCU_BANC), 
	T1.FE_EMIS, T1.FE_VENC, T7.FE_OPER,
	T7.NU_COMP_BANC, T2.IM_DETA_NEGA
  From    TMLETR_PROV T1, TDMOVI_BANC T2, TMCNTA_BANC T4, TCMOVI_BANC T7
  Where   1 = 1 ' + @VSDE_WHER + '
  And 	T2.TI_DOCU_ENTI IN ( ' + @ISDE_CODI_DOCU + ' )
  And 	T1.IM_PAGA >  0
  And   T7.FE_OPER >= Convert(Datetime, "' + @VSFE_INIC + '", 103)
  And	T7.FE_OPER <= Convert(Datetime, "' + @VSFE_FINA + '", 103)
  And   T7.TI_SITU != "ANU"
  And   T1.CO_ESTA_DOCU != "ANU" 
  And 	T2.CO_EMPR = T1.CO_EMPR
  And	T2.TI_ENTI = "' + @ISTI_AUXI_PROV + '"
  And 	T2.TI_DOCU_ENTI =  "' + @OSTI_DOCU_LETR + '"
  And	T1.CO_PROV = T2.CO_ENTI
  And 	T1.NU_LETR_PROV = T2.NU_DOCU_ENTI
  And	T4.CO_EMPR = T2.CO_EMPR
  And	T4.CO_BANC = T2.CO_BANC
  And	T4.NU_CNTA_BANC = T2.NU_CNTA_BANC 
  And	T2.CO_EMPR 	= T7.CO_EMPR
  And	T2.CO_UNID_CONC	= T7.CO_UNID_CONC
  And	T2.CO_BANC 	= T7.CO_BANC
  And	T2.NU_CNTA_BANC = T7.NU_CNTA_BANC
  And	T2.AA_BNCO 	= T7.AA_BNCO
  And	T2.MM_BNCO 	= T7.MM_BNCO 
  And	T2.TI_MOVI_BANC = T7.TI_MOVI_BANC
  And	T2.NU_COMP_BANC = T7.NU_COMP_BANC
  Union All
  Select T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, CONVERT(VARCHAR(3), "' + @OSTI_DOCU_LETR + '"),
	T1.NU_LETR_PROV, T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T2.CO_CAJA, T2.NU_COMP_CAJA,
	T2.IM_SALD_CONV, T3.CO_MONE, T6.FA_TIPO_CAMB, CONVERT(VARCHAR(3),""),
	CONVERT(VARCHAR(15), ""), T1.FE_EMIS, T1.FE_VENC, T6.FE_OPER, T2.NU_COMP_CAJA, T2.IM_DETA_NEGA
  From   TMLETR_PROV T1, TDMOVI_CAJA T2, TMCAJA T3, TCMOVI_CAJA T6
  Where  1 = 1 ' +  @VSDE_WHER + '
  And 	T2.TI_DOCU_ENTI IN ( ' + @ISDE_CODI_DOCU + ' )
  And T1.IM_PAGA > 0
  And T6.FE_OPER >= Convert(Datetime, "' + @VSFE_INIC + '", 103)
  And T6.FE_OPER <= Convert(Datetime, "' + @VSFE_FINA + '", 103)
  And T6.TI_SITU != "ANU"
  And T1.CO_ESTA_DOCU != "ANU" 
  And T2.CO_EMPR = T1.CO_EMPR
  And T2.TI_ENTI = "' + @ISTI_AUXI_PROV + '"
  And T2.TI_DOCU_ENTI = "' + @OSTI_DOCU_LETR + '"
  And T1.CO_PROV = T2.CO_ENTI
  And T1.NU_LETR_PROV = T2.NU_DOCU_ENTI
  And T2.CO_EMPR = T3.CO_EMPR
  And T2.CO_CAJA = T3.CO_CAJA
  And T2.CO_EMPR = T6.CO_EMPR
  And T2.CO_CAJA = T6.CO_CAJA
  And T2.AA_CAJA = T6.AA_CAJA
  And T2.MM_CAJA = T6.MM_CAJA
  And T2.TI_MOVI = T6.TI_MOVI
  And T2.NU_COMP_CAJA = T6.NU_COMP_CAJA ')


  Update #TWPAGO_PROV
  Set 	IM_SALD_CONV = IM_CONV_DOCU,
  	IM_CONV = IM_MOVI
  Where CO_MONE_OPER = @ISCO_MONE_DEST


  SELECT @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG
  FROM   TMPARA_TESO
  WHERE  CO_EMPR = @ISCO_EMPR

  DECLARE  CU_TMDOCU_PROV_Q22_1 CURSOR
  FOR	
  SELECT  T1.CO_EMPR, T1.CO_CABA, T1.NU_CNTA_BANC, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, 
          T1.NU_DOCU_PROV, T1.NU_COMP_CABA, T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T1.FA_TIPO_CAMB, 
          T1.FE_OPER, T1.IM_MOVI
  FROM    #TWPAGO_PROV T1
  WHERE   T1.CO_MONE_OPER != @ISCO_MONE_DEST

  OPEN  CU_TMDOCU_PROV_Q22_1
  FETCH CU_TMDOCU_PROV_Q22_1 
  INTO  @CSCO_EMPR, @CSCO_CABA, @CSNU_CNTA_BANC, @CSCO_MONE, @CSCO_PROV, @CSCO_TIPO_DOCU, 
        @CSNU_DOCU_PROV, @CSNU_COMP_CABA, @CNIM_CONV_DOCU, @CSCO_MONE_OPER, @CNFA_TIPO_CAMB, 
        @CDFE_OPER, @CNIM_MOVI


  SELECT @VNFE_0001  = @@FETCH_STATUS
  WHILE (@VNFE_0001 = 0)
    BEGIN
      IF (@VNFE_0001 < 0)
     	BEGIN
            RAISERROR 20001 'FIN DE ARCHIVO'
 	    Close CU_TMDOCU_PROV_Q22_1
	    Deallocate CU_TMDOCU_PROV_Q22_1
	    Return
        END		

      EXEC SP_TCFACT_CAMB_Q01 @ISCO_EMPR, @CSCO_MONE_OPER, @ISCO_MONE_DEST, @CDFE_OPER, @CNIM_CONV_DOCU,
           @VSTI_CAMB, @VSTI_ORIG, @ISST_USUA, @INFA_USUA, @VNIM_SALD_CONV OUTPUT

      EXEC SP_TCFACT_CAMB_Q01 @ISCO_EMPR, @CSCO_MONE_OPER, @ISCO_MONE_DEST, @CDFE_OPER, @CNIM_MOVI,
           @VSTI_CAMB, @VSTI_ORIG, @ISST_USUA, @INFA_USUA, @VNIM_CONV OUTPUT


      UPDATE  #TWPAGO_PROV
      SET     IM_SALD_CONV = @VNIM_SALD_CONV,
              IM_CONV = @VNIM_CONV
      WHERE   CURRENT OF CU_TMDOCU_PROV_Q22_1

      FETCH CU_TMDOCU_PROV_Q22_1 
      INTO  @CSCO_EMPR, @CSCO_CABA, @CSNU_CNTA_BANC, @CSCO_MONE, @CSCO_PROV, @CSCO_TIPO_DOCU, 
            @CSNU_DOCU_PROV, @CSNU_COMP_CABA, @CNIM_CONV_DOCU, @CSCO_MONE_OPER, @CNFA_TIPO_CAMB, 
            @CDFE_OPER, @CNIM_MOVI

      SELECT @VNFE_0001 = @@FETCH_STATUS

  END

  CLOSE CU_TMDOCU_PROV_Q22_1
  DEALLOCATE CU_TMDOCU_PROV_Q22_1


 IF @ISTI_ORDE = '1'
	SELECT 	T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,
	T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T1.CO_CABA, T1.NU_CNTA_BANC,
	T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T3.DE_NOMB, T1.FA_TIPO_CAMB, T2.NO_AUXI, 
	T1.TI_DOCU_CABA, T1.NU_DOCU_CABA, CONVERT(VARCHAR(10), T1.FE_EMIS, 103), CONVERT(VARCHAR(10), T1.FE_VENC, 103 ), 
CONVERT(VARCHAR(10), T1.FE_OPER, 103), 
	T1.NU_COMP_CABA, T1.IM_MOVI, T1.IM_SALD_CONV, T1.IM_CONV, '',
	'', '1', '1', '1', '1', T1.FE_OPER

	FROM 	#TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3
	WHERE	T1.CO_EMPR = T2.CO_EMPR
	AND 	T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
	AND 	T1.CO_PROV = T2.CO_AUXI_EMPR
	AND 	T1.CO_EMPR = T3.CO_EMPR
	UNION ALL
	Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, T1.CO_MONE_OPER, '', 
		'', 0, 0, '', '', 
		0, T1.CO_MONE_OPER, MAX(T3.DE_NOMB), 0, MAX(T2.NO_AUXI), 
		'', '', NULL, NULL, NULL, '', 
		Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '1', '1', '1', NULL
	From 	#TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T2.CO_EMPR
	AND 	T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
	AND 	T1.CO_PROV = T2.CO_AUXI_EMPR
	AND 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE_OPER
	Union All
	Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER, '', 
		'', 0, 0, '', '', 
		0, T1.CO_MONE_OPER, MAX(T3.DE_NOMB), 0, '', 
		'', '', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), 
		Max(T4.DE_MONE), '2', '2', '2', '1', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.CO_MONE_OPER
	Union All
	Select Max(T1.CO_EMPR), T1.CO_MONE_OPER, '', T1.CO_MONE_OPER, '', 
		'', 0, 0, '', '', 
		0, T1.CO_MONE_OPER, MAX(T3.DE_NOMB), 0, '', 
		'', '', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), 
		Max(T4.DE_MONE), '2', '2', '2', '2', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_MONE_OPER
	ORDER BY 30, 1, 29, 3, 27, 31, 4, 5


  IF @ISTI_ORDE = '2'
	SELECT 	T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,
		T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T1.CO_CABA, T1.NU_CNTA_BANC,
		T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T3.DE_NOMB, T1.FA_TIPO_CAMB, T2.NO_AUXI, 
		T1.TI_DOCU_CABA, T1.NU_DOCU_CABA, CONVERT(VARCHAR(10), T1.FE_EMIS, 103),
		CONVERT(VARCHAR(10), T1.FE_VENC, 103 ), CONVERT(VARCHAR(10), T1.FE_OPER, 103), 
		T1.NU_COMP_CABA, T1.IM_MOVI, T1.IM_SALD_CONV, T1.IM_CONV, '',
		'', '1', '1', '1', '1', T1.FE_OPER
	FROM 	#TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3
	WHERE	T1.CO_EMPR = T2.CO_EMPR
	AND 	T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
	AND 	T1.CO_PROV = T2.CO_AUXI_EMPR
	AND 	T1.CO_EMPR = T3.CO_EMPR
	UNION ALL
	Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, T1.CO_MONE_OPER,
		'', '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, MAX(T2.NO_AUXI), '',
		'', NULL, NULL, CONVERT(VARCHAR(10), T1.FE_OPER, 103),
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '1', '1', '1', T1.FE_OPER
	From 	#TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T2.CO_EMPR
	AND 	T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
	AND 	T1.CO_PROV = T2.CO_AUXI_EMPR
	AND 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.FE_OPER, T1.CO_PROV, T1.CO_MONE_OPER
	Union All
	Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,
		'', '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, '', '',
		'', NULL, NULL, CONVERT(VARCHAR(10), T1.FE_OPER, 103),
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '2', '1', '1', T1.FE_OPER
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.FE_OPER, T1.CO_MONE_OPER
	Union All
	Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,
		'', '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, '', '',
		'', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),

		'2', '2', '2', '1', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.CO_MONE_OPER
	Union All
	Select Max(T1.CO_EMPR), T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,
		'', '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,

		MAX(T3.DE_NOMB), 0, '', '',
		'', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '2', '2', '2', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_MONE_OPER
	ORDER BY 30, 1, 29, 31, 28, 3, 27, 4, 5

  IF @ISTI_ORDE = '3'
	SELECT 	T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,
		T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T1.CO_CABA, T1.NU_CNTA_BANC,
		T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T3.DE_NOMB, T1.FA_TIPO_CAMB, T2.NO_AUXI, 
		T1.TI_DOCU_CABA, T1.NU_DOCU_CABA, CONVERT(VARCHAR(10), T1.FE_EMIS, 103),
		CONVERT(VARCHAR(10), T1.FE_VENC, 103 ), CONVERT(VARCHAR(10), T1.FE_OPER, 103), 
		T1.NU_COMP_CABA, T1.IM_MOVI, T1.IM_SALD_CONV, T1.IM_CONV, '',
		'', '1', '1', '1', '1', T1.FE_OPER
	FROM 	#TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3
	WHERE	T1.CO_EMPR = T2.CO_EMPR
	AND 	T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
	AND 	T1.CO_PROV = T2.CO_AUXI_EMPR
	AND 	T1.CO_EMPR = T3.CO_EMPR
	UNION ALL
	Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, T1.CO_TIPO_DOCU,
		T1.NU_DOCU_PROV, '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, MAX(T2.NO_AUXI), '',
		'', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'1', '2', '1', '1', NULL
	From #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T2.CO_EMPR
	AND 	T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV
	AND 	T1.CO_PROV = T2.CO_AUXI_EMPR
	AND 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.CO_PROV,  T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_MONE_OPER
	Union All
	Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, Max(T1.CO_TIPO_DOCU),
		Max(T1.NU_DOCU_PROV), '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, '', '',
		'', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '2', '1', '1', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE_OPER
	Union All
	Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,
		'', '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, '', '',
		'', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '2', '2', '1', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_EMPR, T1.CO_MONE_OPER
	Union All
	Select Max(T1.CO_EMPR), T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,
		'', '', 0, 0,
		'', '', 0, T1.CO_MONE_OPER,
		MAX(T3.DE_NOMB), 0, '', '',
		'', NULL, NULL, NULL,
		'', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),
		'2', '2', '2', '2', NULL
	From 	#TWPAGO_PROV T1, TMEMPR T3, TTMONE T4
	Where 	T1.CO_EMPR = T3.CO_EMPR
	And 	T1.CO_MONE_OPER = T4.CO_MONE
	Group By T1.CO_MONE_OPER
	ORDER BY 30, 1, 29, 3, 27, 4, 5 , 28

/*----------------------------FIN--------------------------*/


GO
